package com.tag.socialhub.facebook;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Enumeration;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class oauth extends HttpServlet {
	public void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		String apiKey = getServletConfig().getInitParameter("API_KEY");
		String secretKey = getServletConfig().getInitParameter("SECRET_KEY");

		response.setContentType("text/html");
		PrintWriter out = response.getWriter();
		String title = "Reading All Request Parameters";
		out.println("<head><title>" + title + "</title></head>"
				+ "<BODY BGCOLOR=\"#FDF5E6\">\n" + "<H1 ALIGN=CENTER>" + title
				+ "</H1>\n" + "<TABLE BORDER=1 ALIGN=CENTER>\n"
				+ "<TR BGCOLOR=\"#FFAD00\">\n"
				+ "<TH>Parameter Name<TH>Parameter Value(s)");
		Enumeration paramNames = request.getParameterNames();
		while (paramNames.hasMoreElements()) {
			String paramName = (String) paramNames.nextElement();
			out.println("<TR><TD>" + paramName + "\n<TD>");
			String[] paramValues = request.getParameterValues(paramName);
			if (paramValues.length == 1) {
				String paramValue = paramValues[0];
				if (paramValue.length() == 0)
					out.print("<I>No Value</I>");
				else
					out.print(paramValue);
			} else {
				out.println("<UL>");
				for (int i = 0; i < paramValues.length; i++) {
					out.println("<LI>" + paramValues[i]);
				}
				out.println("</UL>");
			}
		}
		out.println("</TABLE>\n");
		StringBuffer url = new StringBuffer();
		url.append("https://graph.facebook.com/oauth/access_token?client_id=");
		url.append(apiKey);
		url.append("&client_secret=");
		url.append(secretKey);
		url.append("&code=");
		url.append(request.getParameterValues("code")[0]);
		url
				.append("&redirect_uri=http://tgreening.appspot.com/oauth_redirect\"");
		out.println("<a href=\"" + url.toString() + "\"> Get token </a><BR/>");
		url.setLength(0);
		url.append("https://graph.facebook.com/oauth/authorize?client_id=");
		url.append(apiKey);
		url
				.append("&scope=publish_stream,read_stream,user_status,read_friendlists");
		url.append("&redirect_uri=http://tgreening.appspot.com/fb/\"");
		out.println("<a href=\"" + url.toString()
				+ "\"> Grant Permissions </a>");

		out.println("</BODY></HTML>");

	}

	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}
